{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#第一部分“数据”\n",
    "数据收集和数据存储技术的快速进步使得各组织机构可以积累海量数据。然而，提取有用的信息已经成为巨大的挑战。通常，由于数据量太大，无法使用传统的数据分析工具和技术处理它们。有时，即使数据集相对较小，但由于数据本身具有一些非传统特点，也不能使用传统的方法处理。在另外一些情况下，面临的问题不能使用已有的数据分析技术来解决。这样，就需要开发新的方法。\n",
    "数据挖掘是一种技术，它将传统的数据分析方法与处理大量数据的复杂算法相结合。数据挖掘为探查和分析新的数据类型以及用新方法分析旧有数据类型提供了令人振奋的机会。本章，概述数据挖掘，并列举本书所涵盖的关键主题。首先介绍需要新的数据分析技术。\n",
    "##什么是数据挖掘\n",
    "数据挖掘是在大型数据存储库中，自动地发现有用信息的过程。数据挖掘技术用来探查大型数据库，发现先前未知的有用模式。数据挖掘还可以预测未来观测结果，\n",
    "###数据挖掘要解决的问题\n",
    "在我们面临新的数据集带来的问题时，传统的数据分析技术常常遇到实际困难。如果数据挖掘算法要处理这些海量数据集，则算法必须是可伸缩的(scalable)。许多数据挖掘算法使用特殊的搜索策略处理指数级搜索问题。为实现可伸缩可能还需要实现新的数据结构，才能以有效的方式访问每个记录。使用抽样技术或开发并行和分布算法也可以提高可伸缩程度。\n",
    "高维性 现在，常常遇到具有成百上千属性的数据集，而不是几十年前常见的只具有少量属性的数据集。在生物信息学领域，微阵列技术的进步已经产生了涉及数千特征的基因表达数据。具有时间或空间分量的数据集也经常具有很高的维度。\n",
    "数据的所有权与分布 有时，需要分析的数据并非存放在一个站点，或归属一个机构，而是地理上分布在属于多个机构的资源中。这就需要开发分布式数据挖掘技术。分布式数据挖掘算法面临的主要挑战包括：(1)如何降低执行分布式计算所需的通信量?(2)如何有效地统一从多个资源得到的数据挖掘结果？(3)如何处理数据安全性问题？\n",
    "1.4数据挖掘任务\n",
    "通常，数据挖掘任务分为下面两大类。\n",
    "1.预测任务。这些任务的目标是根据其他属性的值，预测特定属性的值。被预测的属性一般称目标变量或因变量，而用来做预测的属性称说明变量或自变量。\n",
    "2.描述任务。其目标是导出概括数据中潜在联系的模式(相关、趋势、聚类、轨迹和异常)。\n",
    "3.关联分析用来发现描述数据中强关联特征的模式。所发现的模式通常用蕴涵规则或特征子集的形式表示。4.聚类分析旨在发现紧密相关的观测值组群，使得与属于不同簇的观测值相比，属于同一簇的观测值相互之间尽可能类似。\n",
    "\n",
    "数据类型数据集的不同表现在多方面。通常必须解决的数据质量问题包括存在噪声和离群点，数据遗漏、不一致或重复，数据有偏差或者不能代表它应该描述的现象或总体情况。\n",
    "使数据适合挖掘的预处理步骤通常，原始数据必须加以处理才能适合于分析。处理一方面是要提高数据的质量，另一方面要让数据更好地适应特定的数据挖掘技术或工具。根据数据联系分析数据数据分析的一种方法是找出数据对象之间的联系，之后使用这些联系而不是数据。                                   数据类型\n",
    "数据集可以看作数据对象的集合。数据对象有时也叫做记录、点、向量、模式、事件案例、样本、观测或实体。数据对象用一组刻画对象基本特性(如物体质量或事件发生时间)属性描述。属性有时也叫做变量、特性、字段、特征或维。\n",
    "###属性与度量。\n",
    "1.什么是属性\n",
    "2.1属性是对象的性质或特性，它因对象而异，或随时间而变化。为了讨论和精细地分析对象的特性，我们为它们赋予了数字或符号。为了用一种明确定义的方式做到这一点，我们需要测量标度。\n",
    "2.2测量标度是将数值或符号值与对象的属性相关联的规则(函数)。\n",
    "形式上，测量过程是使用测量标度将一个值与一个特定对象的特定属性相关联。对象属性的“物理值”都被映射到数值或符号值。\n",
    "2.属性类型\n",
    "属性的性质不必与用来度量它的值的性质相同。换句话说，用来代表属性的值可能具有不同于属性本身的性质。\n",
    "3.属性的不同类型\n",
    "一种指定属性类型的有用(和简单)的办法是，确定对应于属性基本性质的数值的性质。例如，长度的属性可以有数值的许多性质。按照长度比较对象，确定对象的排序，以及谈论长度的差和比例都是有意义的。数值的如下性质(操作)常常用来描述属性。\n",
    "(1)相异性 =和。\n",
    "(2)序 <、<、>和>。\n",
    "(3)加法 +和一。\n",
    "(4)乘法 *和/。\n",
    "给定这些性质，我们可以定义四种属性类型：标称、序数、区间和比率。\n",
    "##数据类型 \n",
    "标称 标称属性的值仅仅只是不 邮政编码、雇员 ID 众数、焰、列联相关、\n",
    "同的名字，即标称值只提供足 号、眼球颜色、性别 ／检验\n",
    "分类的\n",
    "（定性的） 序数 够的信息以区分对象\n",
    "(=，#)\n",
    "序数属性的值提供足够的 矿石硬度、（好，较好， 中值、百分位、秩相关、\n",
    "信息确定对象的序 最好）、成绩、街道号码 游程检验、符号检验\n",
    "(<, >)\n",
    "区间 对于区间属性，值之间的差 日历日期、摄氏或华 均值、标准差、皮尔逊\n",
    "是有意义的，即存在测量单位 氏温度 相关、1和F检验\n",
    "数值的 (+，-)\n",
    "（定量的） 比率 对于比率变量，差和比率都 绝对温度、货币量、 几何平均、调和平均、\n",
    "是有意义的 计数、年龄、质量、长百分比变差\n",
    "(*，/) 度、电流\n",
    "标称和序数属性统称分类的或定性的属性。顾名思义，定性属性不具有数的大部分性质。即便使用数(即整数)表示，也应当像对待符号一样对待它们。其余两种类型的属性，即区间和比率属性，统称定量的或数值的属性。定量属性用数表示，并且具有数的大部分性质。注意：定量属性可以是整数值或连续值。\n",
    "属性的类型也可以用不改变属性意义的变换来描述。对特定的属性类型有意义的统计操作是这样一些操作，当使用保持属性意义的变换对属性进行变换时，它们产生的结果相同。\n",
    "4.用值的个数描述属性\n",
    "区分属性的一种独立方法是根据属性可能取值的个数来判断。\n",
    "18 第2章数 据\n",
    "·离散的(disrete)离散属性具有有限个值或无限可数个值。这样的属性可以是分类的，如邮政编码或ID号，也可以是数值的，如计数。\n",
    "5.非对称的属性\n",
    "对于非对称的属性(asymmetric attrbute)，出现非零属性值才是重要的。考虑这样一个数据集，其中每个对象是一个学生，而每个属性记录学生是否选修大学的某个课程。\n",
    "###数据集的类型\n",
    "数据集的类型有多种，并且随着数据挖掘的发展与成熟，还会有更多类型的数据集将用于分析。本节我们介绍一些很常见的类型。为方便起见，我们将数据集类型分成三组：记录数据、基于图形的数据和有序的数据。这些分类不能涵盖所有的可能性，肯定还存在其他的分组。\n",
    "1.数据集的一般特性\n",
    "在提供特定类型数据集的细节之前，我们先讨论适用于许多数据集的三个特性，它们对数据挖掘技术具有重要影响，它们是维度、稀疏性和分辨率。\n",
    "维度数据集的维度是数据集中的对象具有的属性数目。低维度数据往往与中、高维度数据有质的不同。确实，分析高维数据有时会陷入所谓维灾难。正因为如此，数据预处理的一个重要动机就是减少维度，称为维归约。\n",
    "稀疏性有些数据集，如具有非对称特征的数据集，一个对象的大部分属性上的值都为0；在许多情况下，非零项还不到1%。实际上，稀疏性是一个优点，因为只有非零值才需要存储和处理。这将节省大量的计算时间和存储空间。此外，有些数据挖掘算法仅适合处理稀疏数据。\n",
    "分辨率常常可以在不同的分辨率下得到数据，并且在不同的分辨率下数据的性质也不同。\n",
    "2.记录数据\n",
    "许多数据挖掘任务都假定数据集是记录(数据对象)的汇集，每个记录包含固定的数据字段(属性)集。对于记录数据的大部分基本形式，记录之间或数据字段之间没有明显的联系，并且每个记录(对象)具有相同的属性集。3.基于图形的数据\n",
    "有时，图形可以方便而有效地表示数据。我们考虑两种特殊情况：(1)图形捕获数据对象之间的联系，(2)数据对象本身用图形表示。\n",
    "带有对象之间联系的数据对象之间的联系常常携带重要信息。子结构挖拥是数据挖掘中分析这类数据的一个分支。\n",
    "##数据质量\n",
    "数据挖掘使用的数据常常是为其他用途收集的，或者在收集时未明确其目的。因此，数据挖掘常常不能“在数据源头控制质量”。相比之下，统计学的实验设计或调查往往其数据质量都达到了一定的要求。由于无法避免数据质量问题，因此数据挖掘着眼于两个方面：(1)数据质量问题的检测和纠正，(2)使用可以容忍低质量数据的算法。第一步的检测和纠正，通常称作数据清理。\n",
    "###测量和数据收集问题\n",
    "期望数据完美是不现实的。由于人的错误、测量设备的限制或数据收集过程的漏洞都可能导\n",
    "## 数据质量 \n",
    "致问题。\n",
    "1.测量误差和数据收集错误\n",
    "术语测量误差是指测量过程中导致的问题。测量误差和数据收集错误可能是系统的也可能是随机的。\n",
    "我们只考虑一般的错误类型。在特定的领域，总有些类型的错误是常见的，并且常常有很好的技术来检测并纠正这些错误。2.噪声和伪像\n",
    "噪声是测量误差的随机部分。这可能涉及值被扭曲或加入了谬误对象。显示被随机噪声干扰前后的时间序列。如果在时间序列上添加更多的噪声，形状将会消失。显示了三组添加一些噪声点(用“+”表示)前后的数据点集。注意，有些噪声点与非噪声点混在一起。\n",
    "术语“噪声”通常用于包含时间或空间分量的数据。\n",
    "3.精度、偏倚和准确率\n",
    "在统计学和实验科学中，测量过程和结果数据的质量用精度和偏倚度量。我们给出标准的定义，随后简略加以讨论。对于下面的定义，我们假定对相同的基本量进行重复测量，并使用测量值集合计算均值(平均值)，作为实际值的估计。\n",
    "定义2.3 精度(同一个量的)重复测量值之间的接近程度。\n",
    "定义2.4 偏倚测量值与被测量之间的系统的变差。\n",
    "定义2.5 准确率被测量的测量值与实际值之间的接近度。\n",
    "准确率依赖于精度和偏倚，但是由于它是一个一般化的概念，因此没有用这两个量表达准确率的公式。\n",
    "诸如有效数字、精度、偏倚和准确率问题常常被忽视，但是对于数据挖掘、统计学和自然科学，它们都非常重要。通常，数据集并不包含数据精度信息，用于分析的程序返回的结果也没有这方面的信息。但是，缺乏对数据和结果准确率的理解，分析者将可能出现严重的数据分析错误。\n",
    "4.离群点\n",
    "离群点(是在某种意义上具有不同于数据集中其他大部分数据对象的特征的数据对象，或是相对于该属性的典型值来说不寻常的属性值。我们也称其为异常对象或异常值。有许多定义离群点的方法，并且统计学和数据挖掘界已经提出了很多不同的定义。5.遗漏值\n",
    "一个对象遗漏一个或多个属性值的情况并不少见。有时可能会出现信息收集不全的情况，例如有的人拒绝透露年龄或体重。还有些情况下，某些属性并不能用于所有对象，这件事要小心，因为被删除的属性可能对分析是至关重要的。\n",
    "估计遗漏值 有时，遗漏值可以可靠地估计。在分析时忽略遗漏值 许多数据挖掘方法都可以修改，忽略遗漏值。例如，假定正在对数据对象聚类，需要计算各对数据对象间的相似性。如果某对的一个对象或两个对象都有某些属性有遗漏值，则可以仅使用没有遗漏值的属性来计算相似性。当然，这种相似性只是近似的，但是除非整个属性数目很少，或者遗漏值的数量很大，否则这种误差影响不大。同样地，许多分类方法都可以修改，便于处理遗漏值。\n",
    "6.不一致的值\n",
    "数据可能包含不一致的值。比如地址字段列出了邮政编码和城市名，但是有的邮政编码区域并不包含在对应的城市中。可能是人工输入该信息时录颠倒了两个数字，或许是在手写体扫描时错读了一个数字。无论导致不一致值的原因是什么，重要的是能检测出来，并且如果可能的话，纠正这种错误。\n",
    "有些不一致类型容易检测，检测到不一致后，有时可以对数据进行更正。产品代码可能有“校验”数字，或者可以通过一个备案的已知产品代码列表，复核产品代码，如果发现它不正确但接近一个已知代码，则纠正它。纠正不一致需要额外的或冗余的信息。\n",
    "7.重复数据\n",
    "数据集可能包含重复或几乎重复的数据对象。术语去重复(deduplication)通常用来表示处理这些问题的过程。\n",
    "### 关于应用的问题\n",
    "数据质量问题也可以从应用角度考虑，表达为“数据是高质量的，如果它适合预期的应用”特别是对工商业界，数据质量的这种提议非常有用。\n",
    "时效性 有些数据收集后就开始老化。\n"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
